The present invention relates to telecommunications devices, systems and methods. More particularly, the present invention provides devices, systems and methods for pre-fetching and transmitting information over a satellite system, or other long latency system, for use in a wide area network of computers such as the Internet.
The Internet is an international “super-network” connecting together millions of individual computer networks and computers. The Internet is an extremely diffuse and complex system over which no single entity has complete authority or control. Although the Internet is widely known for presenting information through the World Wide Web (herein “Web”), there are many other services currently available based upon the general Internet protocols and infrastructure.
The Web is generally easy to use for people inexperienced with computers. Information on the Web can be presented on “pages” of graphics and text that contain “links” to other pages either within the same set of data files (i.e., Web site) or within data files located on other computer networks. Users often access information on the Web using a “browser” program such as one made by Netscape Communications Corporation of Mountain View, Calif. or Microsoft Corporation of Redmond, Wash. Browser programs process information from Web sites and display the information using graphics, text, video, sound, and animation. Accordingly, the Web has become a popular medium for advertising goods and services directly to consumers.
The Internet supports many other forms of communication. For example, the Internet allows one-to-one communication via electronic mail (“e-mail”). The Internet also has “bulletin boards,” which are used by users to post colorful text and graphics for others to read and respond to, “chat rooms” for real time communication by way of typed messages, and the like. In some cases, the Internet can also be used for voice communication between users, audio and video broadcasts, multicasts, and the like. All of these forms of communication are possible, at least in part, by way of a connection which allows information to be transmitted from many different servers on the Internet.
The Internet is largely based on the TCP/IP protocol suite. At the network layer, an Internet Protocol (IP) provides a mechanism to deliver packets addressed to individual computers. The Internet has a plurality of computer systems implementing IP, which are generally interconnected to each other using local area networks (LANs) and dedicated transmission lines to form a wide area network (WAN) of computers. IP packets are delivered on a best effort basis and are not guaranteed to arrive at their intended destination, which is known as “unreliable” service.
For many applications that require reliable data delivery service, the Internet uses a connection mechanism called Transmission Control Protocol (TCP). TCP has a variety of desirable characteristics that allows it to be suitable for communication over the Internet. For example, TCP considers the data size or best sized segment of data to send from a transmitting server over the communication medium to a receiving server. Additionally, TCP maintains a timer, which waits for the receiving server to send an acknowledgement of the reception of the data segment from the transmitting server. If the timer times out before the acknowledgement is received, TCP resends the data segment, which provides reliability in the communication. TCP also maintains a checksum on its header and data, which monitors any modification in the data in transit. If the data arrives with an invalid checksum, TCP discards the data and does not acknowledge receiving the data. If data segments arrive out of order, TCP can also recombine the segments in order at the receiving server. Furthermore, TCP provides flow control, which only allows a finite amount of data to be sent to a buffer on the receiving server. This prevents a fast server computer from overflowing all the buffers on a slower server computer.
Although TCP has been well suited for transmitting Internet data between a plurality of servers, which are coupled to each other by way of conventional telephone systems and lines with similar characteristics, TCP has many limitations. For example, TCP is suitable for “short hops” but often slows down communication over extremely long distances which can have significant latency (e.g., transcontinental hops via satellite). Here, the flow control and acknowledgment features take too long to send and receive, which make communication slow. In particular, TCP has been found to be slow and cumbersome for transmission of Internet data over a satellite network. High speed transmission of Internet data over a satellite network, for example, to a relatively slower recipient, such as modem or the like, can cause congestion. Additionally, pathological conditions can arise in networking using satellites, that can cause resource exhaustion in systems, leading to further slowing of TCP connections. Networking using satellites often encounters significant bit error rates which leads to further slowing of TCP connections.
Still further, as internet users have become more sophisticated, web pages have become more content laden. The number of resources associated with some web pages has grown, and can number in the hundreds. Since each resource is retrieved individually, either over individual connections or sequentially over a single connection, long latency links add to the time and complexity in retrieving such web pages. Improvements are desired.